/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package co.uniandes.patrones.beans;

import co.uniandes.patrones.entidades.AdministradorUsuarios;
import co.uniandes.patrones.entidades.Cliente;
import co.uniandes.patrones.entidades.Usuario;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

/**
 *
 * @author alvar-go@uniandes.edu.co
 */
public class ActualizarDatosBean extends TemplateBean{

    private final static String ACTUALIZACION_INCORRECTA = "actualizarcliente";

    private final static String ACTUALIZACION_CORRECTA = "seleccionvehiculo";

    private String cedula;

    private String nombre;

    private String apellido;

    private String telefono;

    private String celular;

    private String direccion;

    private Date fechaNacimiento;

    private String email;
    
    private String tipoDocumento;

    private Cliente clienteActual;
    
    private List<String> tiposDocumento;
    
    private String identificacion;

    //@WebServiceRef(wsdlLocation = "WEB-INF/wsdl/localhost_8081/vehialpes.wsdl")
    //private Vehialpes_Service servicioMule;

    public ActualizarDatosBean(){
        cargarCliente();
        nombre = clienteActual.getNombre();
        cedula = clienteActual.getId();
        apellido = clienteActual.getApellido();
        telefono = clienteActual.getTelefono();
        celular = clienteActual.getCelular();
        direccion = clienteActual.getDireccion();
        fechaNacimiento = clienteActual.getFechaNacimiento();
        email = clienteActual.getEmail();
        tipoDocumento = clienteActual.getTipoDocumento();
        
        tiposDocumento = new ArrayList<String>();
        tiposDocumento.add(Cliente.TIPO_CEDULA);
        tiposDocumento.add(Cliente.TIPO_CEDULA_EX);
        tiposDocumento.add(Cliente.TIPO_PASAPORTE);
    }

     private void cargarCliente(){
         FacesContext context = FacesContext.getCurrentInstance();
        HttpSession sesion = (HttpSession) context.getExternalContext().getSession(false);
        if( sesion != null){
             AdministradorUsuarios ad = AdministradorUsuarios.getInstancia();
             Usuario u = (Usuario)ad.buscarUsuario((String)sesion.getAttribute(IngresoBean.SESION_LOGIN));
             clienteActual = (Cliente)u;
             identificacion = clienteActual.getTipo() +":" + clienteActual.getLogin();
        }
    }

    public String getIdentificacion() {
        return identificacion;
    }

    public void setIdentificacion(String identificacion) {
        this.identificacion = identificacion;
    }

     
    public String getTipoDocumento() {
        return tipoDocumento;
    }

    public void setTipoDocumento(String tipoDocumento) {
        this.tipoDocumento = tipoDocumento;
    }
    
    public String getApellido() {
        return apellido;
    }

    public String getCedula() {
        return cedula;
    }

    public String getCelular() {
        return celular;
    }

    public Cliente getClienteActual() {
        return clienteActual;
    }

    public String getDireccion() {
        return direccion;
    }

    public String getEmail() {
        return email;
    }

    public Date getFechaNacimiento() {
        return fechaNacimiento;
    }

    public String getNombre() {
        return nombre;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setApellido(String apellido) {
        this.apellido = apellido;
    }

    public void setCedula(String cedula) {
        this.cedula = cedula;
    }

    public void setCelular(String celular) {
        this.celular = celular;
    }

    public void setClienteActual(Cliente clienteActual) {
        this.clienteActual = clienteActual;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public void setFechaNacimiento(Date fechaNacimiento) {
        this.fechaNacimiento = fechaNacimiento;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    public List<String> getTiposDocumento() {
        return tiposDocumento;
    }

    public void setTiposDocumento(List<String> tiposDocumento) {
        this.tiposDocumento = tiposDocumento;
    }

    public boolean validarDatos(){
        boolean validos = true;
        if(nombre != null && apellido != null && cedula != null && telefono != null && celular != null && direccion != null && tipoDocumento != null && email !=null && fechaNacimiento !=null){
            if(nombre.trim().equals("") || apellido.trim().equals("") || cedula.trim().equals("") || telefono.trim().equals("") || direccion.trim().equals("") || tipoDocumento.trim().equals("") || email.trim().equals("")){
                validos = false;
            }
        }else{
            validos = false;
        }
        return validos;
    }
    public String actualizarDatos(){
            //Vehialpes mule = servicioMule.getVehialpesPort();
        if(validarDatos()){
            clienteActual.setNombre(nombre);
            clienteActual.setApellido(apellido);
            clienteActual.setDireccion(direccion);
            clienteActual.setCelular(celular);
            clienteActual.setTelefono(telefono);
            clienteActual.setEmail(email);
            clienteActual.setFechaNacimiento(fechaNacimiento);
            clienteActual.setTipoDocumento(tipoDocumento);
            clienteActual.setId(cedula);
            clienteActual.setActualizado(true); 
            return  ACTUALIZACION_CORRECTA;
        }else{
            return ACTUALIZACION_INCORRECTA;
        }
            
    }
    
}
